package web

import (
	"github.com/mojocn/base64Captcha"
	"ksd-social-api/commons/base/controller"
	"ksd-social-api/modules/common/code/contants"
	"ksd-social-api/modules/common/code/vo"
)

// 官网：https://github.com/mojocn/base64Captcha
// go get github.com/mojocn/base64Captcha
// Captcha 图形验证码

var store = base64Captcha.DefaultMemStore

type CodeController struct {
	controller.BaseController
}

func If(condition bool, trueVal, falseVal interface{}) interface{} {
	if condition {
		return trueVal
	} else {
		return falseVal
	}
}

/**
 * @author feige
 * @date 2023-10-09
 * @version 1.0
 * @desc 验证码生成
 */
func (web *CodeController) Captcha() {
	type CaptchaResult struct {
		Id         string `json:"captchaId"`
		Base64Blob string `json:"img"`
	}
	driver := base64Captcha.DefaultDriverDigit
	// 验证码的长度
	driver.Length = 4
	// 生成验证码
	captcha := base64Captcha.NewCaptcha(driver, store)
	// 验证码的id和验证码的图片信息以及错误信息
	id, b64s, err := captcha.Generate()
	// 开始数据返回
	codeVo := vo.CodeVo{}

	if err != nil {
		// 开始返回封装数据返回
		web.FailCodeMsg(contants.CODE_FAIL_STATUS, contants.CODE_CREATE_FAIL)
	} else {
		// 开始返回封装数据返回
		codeVo.CaptchaId = id
		codeVo.Base64Img = b64s
		web.Ok(codeVo)
	}
}
